#pragma once

#include "GkStreamDescription.h"

namespace gk
{
	struct Buffer
	{
		StreamDescriptionHandle	m_hStreamDescription;
		BufferFormat::Enum		m_format;
		cr::size_t				m_numElements;
		cr::size_t				m_stride;
		void*					m_pInitData;
		cr::size_t				m_initDataSize;

		void					Lock();
		void					Write(void* pData, cr::size_t dataSize);
		void					Unlock();

		BufferInternal			m_internal;
	};

	typedef cr::Handle<Buffer> BufferHandle;
}